package com.film.service;

import java.util.List;

import com.film.domain.Film;

/**
 * 电影
 * @author 唐永林
 */
public interface FilmService {
	
	/**
	 * 该方法用来做返回一个电影信息
	 * @return 返回一个电影类集合
	 */
	public Film FilmOneTypeAndDirectoe(int Film_id);
	/**
	 * 该方法用来做HotFilm一对多电影信息的拼接
	 * @return 返回一个电影类集合
	 */
	public List<Film> hotFilmTypeAndDirectoe(List<Film> lists);
	/**
	 * 该方法用来做ShowFilm一对多电影信息的拼接
	 * @return 返回一个电影类集合
	 */
	public List<Film> showFilmTypeAndDirectoe(List<Film> lists);
	
	/**
	 * 该方法用来做热门电影的查询
	 * @return
	 */
	public List<Film> selectHotFilm();
	
	/**
	 * 该方法用来做查询上映的电影
	 * @return
	 */
	public List<Film> selectShowFilm();
	
	/**
	 * 该方法用来做电影详情
	 * @param filmId 电影的id
	 * @return
	 */
	public Film selectOneFilm(int filmId);

	/**
	 * 查询所有电影
	 * @return
	 */
	
	public List<Film> selectAllFilm();
	/**
	 * 该方法用来做所有电影上映时间的查询
	 * @return
	 */
	public List<String> selectFilmShowTime();
	/**
	 * 查询电影产地
	 * @return
	 */
	public List<String> selectFilmPlace();
	
	/**
	 * 该方法用来做搜索的模糊查询
	 * @param condition   搜索的条件（condition） 用于搜索框的模糊查询
	 * @return
	 */
	public List<Film> searchFilm(String condition);
	
	/**
	 * 该方法用来做即将上映的电影的分页展示上架的电影
	 * @param pageNum 显示第几页
	 * @return
	 */
	public List<Film> selectFilmLimitShow(int pageNum,int isDelete);
	
	/**
	 * 该方法用来做热门的电影的分页展示上架的电影
	 * @param pageNum 显示第几页
	 * @return
	 */
	public List<Film> selectFilmLimitHot(int pageNum,int isDelete);
	
	/**
	 * 根据电影的id来修改电影的评分
	 * @param reviewScoreint 平均分数
	 * @param film_id 电影id
	 * @return
	 */
	public int updateFilmReviewScore(String reviewScoreint ,int film_id);
	/**
	 * 用来做删除  （做假删除 is_dilete字段）
	 * @param filmId 电影的修改方法  通过电影的id进行修改
	 * @param isDelete 电影是否下架 0上架 1下架				
	 * @return
	 */
	public int updateFilm(int filmId,int isDelete);
	
	
	/**
	 * 该方法用来做热门电影下架的查询
	 * @return
	 */
	
	public List<Film> selectOffTheShelfHotFilm();
	/**
	 * 该方法用来做即将上映电影下架的查询
	 * @return
	 */
	
	public List<Film> selectOffTheShelfShowFilm();
	
	/**
	 * 该方法用来做电影信息的添加
	 * @param film
	 * @return
	 */
	public int addFilm(Film film,int except);
	
	
	/**
	 * 该方法用于后台管理系统对电影进行修改
	 * @param film
	 * @return
	 */
	public int updateFilmInfo(Film film);
	/**
	 * 该方法用来上架电影
	 * @param filmId
	 * @return
	 */
	public int groundingFilm(int filmId);
	
}
